import request from '@/utils/request'

const BASE_URL = '/dk/records'
const ADMIN_URL = '/dk/datasets/admin'

/**
 * 获取会话记录列表
 * @param {Object} params - 查询参数
 * @param {number} [params.page=1] - 页码
 * @param {number} [params.page_size=10] - 每页记录数
 * @param {string} [params.keyword] - 搜索关键词
 * @param {string} [params.start_date] - 开始日期，格式：YYYY-MM-DD
 * @param {string} [params.end_date] - 结束日期，格式：YYYY-MM-DD
 * @param {string} [params.sortBy] - 排序字段
 * @param {string} [params.sortDesc] - 排序方向
 * @returns {Promise} - 返回会话记录列表
 */
export function getRecords(params) {
  return request({
    url: `${BASE_URL}/records`,
    method: 'get',
    params,
  })
}

/**
 * 获取单条会话记录详情
 * @param {string|number} id - 会话记录ID
 * @returns {Promise} - 返回会话记录详情
 */
export function getRecordDetail(id) {
  return request({
    url: `${BASE_URL}/records/${id}`,
    method: 'get',
  })
}

/**
 * 删除会话记录
 * @param {string|number} id - 会话记录ID
 * @returns {Promise} - 返回删除结果
 */
export function deleteRecord(id) {
  return request({
    url: `${BASE_URL}/records/${id}`,
    method: 'delete',
  })
}

/**
 * 批量删除会话记录
 * @param {Array} ids - 会话记录ID数组
 * @returns {Promise} - 返回删除结果
 */
export function batchDeleteRecords(ids) {
  return request({
    url: `${BASE_URL}/records/batch`,
    method: 'post',
    data: {
      ids,
      action: 'delete',
    },
  })
}

/**
 * 更新会话记录标签
 * @param {string|number} id - 会话记录ID
 * @param {Array} tags - 标签数组
 * @returns {Promise} - 返回更新结果
 */
export function updateRecordTags(id, tags) {
  return request({
    url: `${BASE_URL}/records/${id}/tags`,
    method: 'put',
    data: { tags },
  })
}

/**
 * 更新管理员备注
 * @param {string|number} id - 会话记录ID
 * @param {string} notes - 备注内容
 * @returns {Promise} - 返回更新结果
 */
export function updateAdminNotes(id, notes) {
  return request({
    url: `${BASE_URL}/records/${id}/notes`,
    method: 'put',
    data: { notes },
  })
}

/**
 * 获取管理员消息列表
 * @param {Object} params - 查询参数
 * @param {number} [params.page=1] - 页码
 * @param {number} [params.page_size=20] - 每页记录数
 * @param {string} [params.start_date] - 开始日期，格式：YYYY-MM-DD
 * @param {string} [params.end_date] - 结束日期，格式：YYYY-MM-DD
 * @param {string} [params.user_id] - 用户ID
 * @param {string} [params.session_id] - 会话ID
 * @returns {Promise} - 返回管理员消息列表
 */
export function getAdminMessages(params) {
  return request({
    url: `${ADMIN_URL}/messages`,
    method: 'get',
    params,
  })
}
